moddbfandomcom-20200213-history
Glossary
= Glossary of Terms = Terms listed should ideally be language agnostic. If a term is specific to the language it should be noted after the term and before the definition. Didn't you find the term you were looking for? Try looking at GameDev.net's Game Dictonary or searching the Wikipedia Encyclopedia. When you do find a satisfactory explanation of the word, then please feel free to add you that explanation to this list in your own wording. That way the glossary list becomes more complete and others won't have to search elsewhere for words they couldn't find here. ---- 0-9 | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z ---- 0-9 * 3D Texture: A texture with an extra dimension. Usually you load two or more 2D textures and you blend between (e.g. a heightmap). A * A* or A-star: Pathfinding is the process of finding a path from one point to another. A* (a-star) is an algorithm that efficiently finds a shortest path in a graph. In many game-programming situations this is the best choice for pathfinding. A* also has significant applications beyond finding paths across terrain; it can 'pathfind' in abstract problem spaces like sets of actions to undertake in order to accomplish a goal just as easily, making it a powerful AI tool. * AAA: A rating given to a top-of-the-line game. Usually a game with big budget and high production values from an established developer. * AABB: Axis-Aligned Bounding Box. A rectangle or box with the restriction that it's sides or faces are parallel to the axes of the system. * Adaptive Learning: An artificial intelligence system that can re-program itself based on environmental factors and influences. * A.I.: See Artificial Intelligence. * Aimbot: A method of cheating, often in multiplayer games. A separate external program or script will perform perfect targetting on other players. * Algorithm: A step-by-step problem-solving procedure, especially an established, recursive computational procedure for solving a problem in a finite number of steps. * Aliasing: The effect produced when a complex image is put onto a display with a limited resolution. This effect is a product of downsampling. Examples include jagged looking lines in lower resolutions. Temporal Aliasing is the effect where motion appears stuttered due to a low frame rate (for the speed). * Alpha: The first stage of development for a game (see Beta, Gold). * Alpha Blending: Assigning varying levels of translucency to graphical objects, allowing the creation of transparent things such as glass, fog, ghosts, water effects and the like. This can be accomplished by using alpha channels, or other means (see Alpha Channel). * Alpha Channel: In 32-bit color, 24-bits are used for the color, and the extra 8-bits represent an alpha value, or alpha channel. This value is used to determine the pixel's translucency (transparency) level. * Ambient Lighting: In 3D graphics, it's a base amount of light that is added to every polygon, even if it receives no light from the defined light sources. Used to simulate the light that is refracting off objects around us in the real world. * Ambient Occlusion * Amortized Complexity: Average complexity over a large number of calls. For example, push_back on a std::vector is amortized O(1) because it occasionally needs an O(n) reallocation, but only once every n calls or so, with the rest being O(1). Since this means O(n) for n calls, the per-call complexity averages to O(1). * Animation: The process of creating simulated motion or activity. * Anisotropic Filtering: The level past trilinear filtering, this uses samples from multiple Mip Maps to get the best approximation for a texture. Very heavy performance cost. * Anti-Aliasing: This is the process that gets rid of the aliasing effect. A filtering process is normally used in the process that removes "jaggedness effect" produced by pixels (see Aliasing). * API: Application Programming Interface, a collection of functions that you can use to build programs. Your operating system has an API with which you can manipulate its workings. * Arc: A section of a circle that is measured in degrees or radians. * Array: A series of characters and/or numbers defined in order in memory. Used in programming to store data, create matrices, and other. C++ Example: char array12="Hello world"; * Artifacts: In graphics, persistent portions of images resulting from improper blitting operations. * Artificial intelligence: Programming of computers that attempts to mimic human intelligence. The main types of Artificial Intelligence used in games currently are State Machines, Expert Systems, Fuzzy Logic, Genetic Algorithms and Neural Networks. * Aspect Ratio: The aspect ratio of an image is the ratio of its width to its height. Aspect_Ratio = Width / Height See Pixel Ratio. * Assert * Attributes: In Role-Playing Games, attributes are numbers that represents specific aspects in a character's stats. EX: Agility, Intelligence, Luck, Power, etc. are all attributes. * Avatar: An in-game representation of the player. B * Backface Culling: Backface Culling can be considered part of the Hidden Surface Removal process of a Rendering Pipeline. Backface Culling is the process by which Polygons (usually triangles) that are not facing the Camera are removed from the Rendering Pipeline. This is done by comparing the Polygon's Surface Normal with the position of the Camera. * Beta: The second stage in a game's development cycle. This stage is usually fairly feature complete, but may still have missing content and minor bugs. * Big-O Notation: Used to give a rough estimate of the complexity of algorithms. * Billboard: In 3D graphics, it's a flat image drawn in 3D space in such a way that it is always facing the viewer/camera. Common uses are for particles and to display more complex objects at a low level of detail. * Binary Heap: A binary heap is a useful data structure if you have a collection of objects to which you are adding random objects and need to remove the object with the highest (or lowest, or the extreme of some other ordering) value. You could use a dynamic array or a list, but then you'll have to compare all the elements each time you want to find the biggest one. * Binary Space Partion (BSP): * Bit: A bit represents a 1 or a 0, more generically representing the duality of ON/OFF states. 8 bits make a Byte http://en.wikipedia.org/wiki/Byte. * BitBlt (Bit Block Transfer): A function in the Windows API that allows you to transfer a block of bits (A bitmap, for example) from one location to another on the screen. This can be used to move sprites around a screen, a prerequisite for making many types of games. * Blending: In graphics, the process of mixing colors from different sources, usually using an alpha channel. * Bounding Box: A rectangle or box (often aligned to the axis of the coordinate system) around an object to make culling and collision-detection faster. * Buffer: An empty variable/object that will hold information usually from a function. Buffers also hold information that still needs to be processed, like a map buffer holds parts of the map which might still need to be clipped or processed in some other way. * Bug: A software defect usually resulting from incorrect or missing code. * Byte: 8 bit data value, from 0 to 255, or 0 to FF in hexadecimal. http://en.wikipedia.org/wiki/Byte C * Camera: An object which describes the viewpoint of the player, from this the renderer has to calculate what parts of the map to display. * Cell Shading: A style of rendering done to give graphics a cartoony look. One example is XIII - http://pc.ign.com/objects/479/479340.html?ui=gamefinder * Char: A data type typically 8-bit in size http://en.wikipedia.org/wiki/Char * Clipping: In graphics, the process of removing parts of geometry that are outside the screen during drawing. * Collision Detection * Console: ** 1 - A computer only meant for gaming. Examples: Xbox, Playstation, Sega Dreamcast, etc.. ** 2 - A command-line interface, possibly inside of a game. * Culling: In 3D graphics, the process of removing non-visible geometry before drawing it to increase efficiency. D * DirectX: A set of API procedures that allow a programmer more direct access to the machine's hardware while still shielding him from a substantial amount of tedious machine specific coding. This is Microsoft's answer to the complaints of programmers that Windows was too slow to be a gaming platform. By allowing us access to the video, audio, and input devices directly Microsoft has succeeded in convincing developers that Windows is a viable platform for their games. * DLL (Dynamic Link Library): DLLs contain procedures that can be dynamically or statically accessed by programs running in Windows. Generally more than one program can access a single DLL at a time. Many DLL's come packaged with Windows, others are created for the specific needs of a program. DLL's are useful since they reduce the need for redundant code within Windows programs since the most frequently used procedures are centralized within the DLL's that make up the Windows API. * Dynamic Lighting: In 3D graphics, lighting adjusted in real time for changing light sources (and sometimes also for shadow casters). E * Endian: Byte order for integer values, system specific (See Big Endian, Little Endian). * Engine: Code, usually grouped into one or more classes, that performs a specific function. Examples are graphics engine, combat engine, etc. * Exception: A method of error handling that most programming languages support. An exception can be "thrown" when a special or general error occurs, and it is then possible to handle the error, either by correcting it, or by exiting the application "gracefully". F * First Person Shooter: A genre of games in which you view the world from the perspective of the character. These games are typically fast-paced, emphasising speed and accuracy and are considered one of the most complicated games to develop. * FIFO ("First In, First Out"): Refers to a type of programming stack, opposite to FILO. * FPS: ** 1 - An abbreviation for "frames per second" ** 2 - An abbreviation for "first person shooter." * Frame: In animation, a single time step. Every frame objects in the animation are updated and the screen is updated with their new state. Frames per second are a common (although not always very objective) way to measure game performance. * Frustum: In 3D programming, a pyramid-like shape with its point at the "camera", pointing in the direction that you are viewing, and the base representing the far clip plane. This geometric shape contains all objects that are visible. * Frustum Culling: The process of weeding out things that are outside the frustum before drawing. Helps performance because less has to be drawn. G * Game Genres: A game genre is simply a specific type of game. For example, a game in which the player solves puzzles would fall into the "Puzzle Game" genre. * Genre: See Game Genres. * GLSL: Is the OpenGL Shading Language. * Graph: A graph is a basic mathematic concept meaning a collection of points with lines between them. Graphs can have diverse meanings, but a common use of them is to represent points in space and the connections between them. * Graphical APIs : A library of functions that handle the interaction between the hardware (graphics card and monitor) and software components and makes less troublesome to draw graphics to the screen. Most modern graphical APIs include a vast number of features to ease the creation of complex rendering systems. * GDI (Graphical Device Interface): This API is used by Microsoft Windows in order to maintain commonality of look and feel for all programs. The GDI defines how Windows are displayed, bitmaps are moved around, etc. There is a file called GDI32.DLL that houses all of the API calls required to handle these operations (such as BitBlt). H * Hash Table: A hash table is in effect an array, but elements are not added from front to back. The array has a fixed size and some property of the element to add decides where it will be put. * Heightmap: A map or table of what height the ground is at a certain coordinate. It is popular to use heightmaps in the format of a raster image, where one pixel represents a single height coordinate. * Hidden Face Removal: In 3D graphics, the process of making sure only the visible surfaces end up in the final image, and surfaces behind those visible surfaces are hidden. I * Inverse Kinetics (Inverse Kinematics): A method of animating models based on starting with the desired motion of, for example, a hand, and computing the required motions of connected elements (e.g. lower arm, elbow, upper arm, shoulder) from there. Generally regarded as producing results inferior to motion capture. * Isometric: Games are called isometric when their world maps are based on grids of tiles which are drawn to the screen without taking perspective into account (orthogonal). The game view is necessarily top-down in such games. * Index Buffer: J K * Kinetics (Kinematics): * Keyframe: Part of an animation technique wich uses data to set up "snapshots" (keyframes) of the object being animated. These "snapshots" are then interpolated (the in between frames are generated at runtime by knowing the last and the next keyframes) to create a smooth animation using a small amount of data. The keyframes can each contain an instance of the whole mesh of the 3D model (old style) or just information (position and rotation) about the object's joints (a.k.a. skeletal animation) L * Left-Handed Coordinate System: An orientation of axes in a three-dimensional coordinate system, as opposed to right-handed coordinate systems. When you look at the thumb, index finger, and middle finger of your left hand (holding them in orthogonal positions in the most straightforward way), you can determine the orientation of respectively the X, Y and Z axes. * Level of detail (abbr. LOD): In computer graphics, to make drawing more efficient, a simpler form of objects that are farther away is drawn. * LIFO ("Last In, First Out"): LIFO is commonly used to describe a type of programming stack, as opposed to FIFO. * Linear Interpolation: Linear Interpolation is the process of using two known values at two points to determine a third unknown value at a third point. * Linked List: A linked list is a data structure where every element contains both a "value" and a link/reference/pointer to a "next" element (and sometimes also one to a "previous" element). The whole list is represented by a pointer/reference/link to the first element of the list (or a structure encapsulating this). * Lossless: A lossless compression algorithm (as opposed to a lossy algorithm) achieves its space savings without any loss in data integrity. The compression must be fully reversible, and uncompression must result in an exact copy of the original data. * Lossy: A lossy compression algorithm (as opposed to a lossless algorithm) achieves its space savings by sacrificing the least critical portions of data. A lossy compression algorithm is not fully revisible, and uncompression will not result in an exact copy of the original data. M * Matrix: A rectangular grid of numbers. Used heavily in 3D programming for transforming points in space. * MCI (Media Control Interface):. A Windows API for controlling multimedia devices such as CD-ROM drives. * Memory leak: A memory leak is a part of the systems RAM memory that isn't released properly. This is a common problem in software development. * MipMap: In 3D computer graphics texture filtering, MIP maps (also mipmaps) are pre-calculated, optimized collections of bitmap images that accompany a main texture, intended to increase rendering speed and reduce artifacts. * MMORPG (Massive Multi-Player Online Role Playing Game): A certain game genre. * MUD ('''Multi-User Dungeon or Multi-User Dimension): A genre of RPG, usually text-based, commonly thought of as a precursor to MMORPGs. * Multitexturing: Uses two or more "texture units" on the graphics card to blend the textures in one pass. N * Nibble (also Nybble): Half a byte, or 4 bits. Nibbles rarely come up when programming modern computers. * Nick: Short for nickname, used in multiplayer games, it's the name you pick yourself by which you are known (other than using your real name). * Normal: A vector perpendicular to a surface. At the same time, the direction of this vector determines the orientation of the surface. In the case of polygons, this direction is usually determined by the right hand rule. O * O(): See Big-O Notation. * OBB (Oriented Bounding Box): A box or rectangle that could be rotated at any angle. * Object-oriented programming: Usually abbreviated as OOP, this type of programming consists of treating data as groups or objects, where these objects can inherit from other objects. An example would be a human. You can have one a body, with multiple limbs, and a head. Again, each hand would inherit fingers, and so on. Object-oriented programming helps organize code and improve reliability. It is also slower to execute than standard individual-variable type programming. * OCX (OLE Custom Control): A program module available to other programs within the Windows environment. Where a DLL provides pre-made functions to Windows programs, an OCX control provides pre-made controls complete with their own inherent functions and behaviors. OCX files act as containers to ActiveX controls. * OLE (Object Linking and Embedding, pronounced "Oh-Lay"): OLE allows you to create an object within one program and link or embed it into another, thus allowing easily standardized formats. An example of this is how you can insert an Excel Worksheet Element into a Word document, and have it retain its functionality. * Occluder: Used in occlusion culling. An object that sits in front of other objects, blocking them from view and thereby making it unnecessary to draw them. * Occlusion Culling: Pre-processing the list of objects that have to be drawn to remove objects that are entirely behind other object. * OOP: See Object-oriented programming. P * Particle System: A set of routines concerned solely with the physics and display of small particle effects. Examples include explosion fragments, bubbles, engine exhaust, smoking trails, snow flakes, rain drops etc. * Path finding: The way games find a way to get an object from one point to another taking unwalkable tiles etc. into consideration. An absolutely necessary part of almost any game. * Pixel: Pixel is a abbreviation of Picture Element. It is the smallest element of a display. * Portal: * Postmortem: Postmortem literally means "after death" in Latin, and in the world of game development refers to the act of analyzing a game's development after completion. Postmortems provide insight into the world of game development, and often provide the reader with helpful tips on what to do, and what not to do when developing a game. * Projection Matrix: It specifies the field of view angle, aspect ratio and near/far clipping planes. Q * Quadtree: A data tree-structure where each node has four branches. Usually used to partition space in a two-dimensional plane. The square area represented by a node is split into 4 equal squares and every branch represents one of those squares, which might be split itself in turn. R * RAII (Resource Aquisition Is Initialisation) : The C++ idiom that resources should be owned by objects such that they are automatically released by that object's destructor, making code simpler and safer in the face of exceptions. * Rasterization: The process of turning polygons and other internally vector type graphics into raster graphics (made up of discrete pixels). * Right-Handed Coordinated System: See Left-handed coordinate system, except this time you use your right hand. More common than the left handed variety. * RPG (Role-Playing Game): ** 1 - Computer RPGs (CRPGs) are usually "role-playing games" only by the most generous standards. ** 2 - In computer gaming, RPG refers mainly to a character-building or stat-building game. S * Shader: In 3D graphics, it is a program that runs on the video card. Shaders can be run for every vertex or pixel drawn. Not necessarily related to shading only, can influence many aspects of the rendering process. * Sky Box: A skybox is a trick used in 3D graphics to display a horizon (or other far-away stuff) without rendering enormous amounts of geometry. * Sprite: A two dimensional image, often with transparent areas, that is drawn to the screen to represent some in-game object. * Stack: A stack is a container that allows elements to be pushed in and popped out in LIFO ("Last In, First Out") fashion. Depending on the implemenation, only the top element can be accessed or all elements can be accessed. * Stencil Buffer: A stencil buffer is an extra buffer, in addition to the color buffer (pixel buffer) and depth buffer (z-buffering) found on modern computer graphics hardware. The buffer is per pixel, and works on integer values, usually with a depth of one byte per pixel. The depth buffer and stencil buffer often share the same area in the RAM of the graphics hardware. T * Tetris: Tetris is a game in which various falling blocks are to be organized and arranged to form rows with no spaces. It is one of the most well-known video games ever made and has been the center of much legal dispute in the late 80's and early 90's. * Texel: A single pixel on a texture image. * Tile: A single section of image that is blitted along with other tiles to make up a larger picture on the screen. An example is a picture of a bush. It is drawn to the screen along with other pictures, maybe one of grass and one of a road, to make up a picture of a landscape on the screen. U * UV Mapping: Technique used to apply a bitmap (called texture) to at least one polygon. V * Vector: In mathematics, a 1xN array. N usually represents dimensions. Points on a 2D surface can be represented by 2 dimensional vectors, etc. In programming: The word vector is sometimes used to indicate an array. The C++ standard library contains a templated class called std::vector that implements dynamic arrays. * Vector Graphics: Graphics made up of lines, curves or mathematical formulas, as opposed to raster graphics. Vector graphics can be scaled indefinitely and experience no loss in quality, where raster graphics lose some of their accuracy. Generally, all 3D graphics are internally vector graphics, and when drawn to screen (rasterization), they are converted to a raster format the monitor can display. * Vertex (pl. Vertices): In 3D graphics, a point in 3D space. Usually used when the point is part of a model. Can have more information besides location associated with it, for example color, normal, or vertex coordinates. * View Cone: See Frustum. * View Matrix: * Voxel: A voxel (short for volume pixel) is basically the 3D counterpart of a two dimensional pixel. Where you can represent a pixel as a square, a voxel would be a cube. Voxels can be used to build 3D worlds, in a raster format (versus polygonal format which is vector). W * Wallhack: A method of cheating where the player can look through walls and objects. This is mostly done in multiplayer games, where the cheating player is getting a significant advantage by seeing the through the walls. The wall-hack is often performed by replacing a graphics driver. * W-buffer: A w-buffer is a type of depth buffer similar to a Z-buffer, except it is more accurate and generally produces better results. * World Matrix: In graphics, we use it to rotate, scale and translate objects in 3D space (world space) by modifying their vertices. All of these transformations will be performed about the origin (0,0,0). X * X (position): A position on the screen used in 2D and 3D to represent Width. Y * Y (position): A position on the screen used in 2D and 3D to represent Height. Z * Z (position): A position on screen used in 3D to represent Depth. * Z-Buffer: In 3D graphics, an array with a current z-value for every pixel on the screen. Used for hidden face removal. A pixel is only drawn when its z-value is smaller than the current value in the buffer for that location. When it is drawn the z-buffer is updated. In a limited byte situation for Z-buffering, the depth resolution is more condensed toward to the near plane of view frustum compared to the w-buffering. That is, if you set the near plane too close to your eye (zero distance), it will make primitives blinking easily especially when they have certain distance from your eyes. * Z-Fighting: In 3D graphics,